ãŠã§ããã¶ã€ã³ã§å¹æçãªçžŠæžãã¬ã€ã¢ãŠããäœæããããã®CSS text-orientationããããã£ã®äœ¿çšæ³ã«é¢ããç·åã¬ã€ãã倿§ãªèšèªãšãã¶ã€ã³ã«å¯Ÿå¿ããŸãã
CSS text-orientation: ã°ããŒãã«ãŠã§ããã¶ã€ã³ã®ããã®çžŠæžãããã¹ãå¶åŸ¡ããã¹ã¿ãŒãã
ãŠã§ããã¶ã€ã³ã®äžçã§ã¯ãã¿ã€ãã°ã©ãã£ã¯æ
å ±ãäŒããèŠèŠçã«é
åçãªã¬ã€ã¢ãŠããäœæããäžã§éèŠãªåœ¹å²ãæãããŸããå€ãã®èšèªã§ã¯æšªæžããæšæºã§ãããäŒçµ±çã«çžŠæžãã®æžèšäœç³»ã䜿çšããèšèªãæ±ãå ŽåãããŠããŒã¯ãªãã¶ã€ã³èŠçŽ ãäœæããéã«ã¯ãããã¹ãã®åããå¶åŸ¡ããèœåãäžå¯æ¬ ã«ãªããŸããCSSã®text-orientationããããã£ã¯ããã®å¶åŸ¡ãå®çŸããããã®åŒ·åãªããŒã«ãæäŸããéçºè
ãçã«åœéåãããèŠèŠçã«é
åçãªãŠã§ãäœéšãåµåºããããšãå¯èœã«ããŸãã
text-orientationããããã£ãçè§£ãã
CSSã®text-orientationããããã£ã¯ãè¡å
ã®ããã¹ãæåã®åããå¶åŸ¡ããŸããããã¯äž»ã«çžŠæžãã¢ãŒãïŒäŸïŒwriting-mode: vertical-rlãwriting-mode: vertical-lrãšå
±ã«äœ¿çšããå ŽåïŒã®æåã«åœ±é¿ããŸãããç¹å®ã®å€ã«ãã£ãŠã¯æšªæžãããã¹ãã«ã圱é¿ãäžããããšããããŸãã
åºæ¬çãªå€
mixed: ããã¯åæå€ã§ããã©ãã³æåã®ãããªæ¬æ¥æšªæžãã®æåãæèšåãã«90°å転ãããŸããå€ãã®CJKæåã®ãããªæ¬æ¥çžŠæžãã®æåã¯æ£ç«ãããŸãŸã§ããããã¯æšªæžããšçžŠæžãã®ããã¹ããæ··åšãããéã«æãŸããæåãšãªãããšãå€ãã§ããupright: ãã®å€ã¯ãæ¬æ¥ã®åãã«é¢ãããããã¹ãŠã®æåãæ£ç«ãããŠè¡šç€ºããŸããæšªæžãã®æåã¯ã暪æžãã¢ãŒãã§ãããã®ããã«ã¬ã³ããªã³ã°ãããŸããããã¯ããã¹ãŠã®æåãå転ãããã«çžŠã«è¡šç€ºããããå Žåã«äŸ¿å©ã§ããsideways: ãã®å€ã¯ãã¹ãŠã®æåãæèšåãã«90°å転ãããŸããã©ãã³æåã«å¯ŸããŠã¯mixedãšæ©èœçã«äŒŒãŠããŸããã瞊æžãã®æåãå転ãããŸããããã¯sideways-rightãšsideways-leftãåªå ãããããéæšå¥šãšãªã£ãŠããŸããsideways-right: ãã¹ãŠã®æåãæèšåãã«90°å転ãããŸããããã«ããæåã®åããçµ±äžãããç¹å®ã®ãã¶ã€ã³çŸåŠãã¢ã¯ã»ã·ããªãã£èŠä»¶ã«ãšã£ãŠéèŠãšãªãå ŽåããããŸããsideways-left: ãã¹ãŠã®æåãåæèšåãã«90°å転ãããŸããuse-glyph-orientation: ãã®å€ã¯éæšå¥šã§ãã以åã¯ãã°ãªãã«åã蟌ãŸããåãæ å ±ïŒéåžžSVGãã©ã³ãã«èŠãããïŒã«ãã£ãŠåããæ±ºå®ããããšãæå®ããããã«äœ¿çšãããŠããŸããã
å®è·µäŸïŒçžŠæžãããã¹ãã®å®è£
text-orientationã®äœ¿çšæ³ã説æããããã«ãç°¡åãªäŸãèããŠã¿ãŸãããïŒ
.vertical-text {
writing-mode: vertical-rl; /* or vertical-lr */
text-orientation: upright;
}
ãã®CSSã«ãŒã«ã¯ãvertical-textã¯ã©ã¹ãæã€èŠçŽ å
ã®ããã¹ããããã¹ãŠã®æåãæ£ç«ãããç¶æ
ã§çžŠæžãã«ã¬ã³ããªã³ã°ããŸããããtext-orientationãmixedã«å€æŽãããšïŒ
.vertical-text {
writing-mode: vertical-rl;
text-orientation: mixed;
}
ã©ãã³æåã¯æèšåãã«90°å転ãã瞊æžãã®æåã¯æ£ç«ãããŸãŸã«ãªããŸããuprightãšmixedã®ã©ã¡ããéžæãããã¯ãæãŸããèŠèŠå¹æãšããã¹ãå
ã®æåã®çµã¿åããã«ãã£ãŠæ±ºãŸããŸãã
ã°ããŒãã«ãªèæ ®äºé ãšèšèªãµããŒã
text-orientationããããã£ã¯ãäŒçµ±çã«çžŠæžãã®æžèšäœç³»ã䜿çšããèšèªã«ãšã£ãŠç¹ã«éèŠã§ããäŸãã°ã以äžã®ãããªèšèªã§ãïŒ
- äžåœèª: çŸä»£ã®äžåœèªã§ã¯æšªæžãããã䜿ãããŸãããäŒçµ±çãªæžç±ãçæ¿ãèžè¡çãªãã¶ã€ã³ãªã©ãäžéšã®æèã§ã¯äŸç¶ãšããŠçžŠæžãã䜿çšãããŸãã
- æ¥æ¬èª: æ¥æ¬èªã¯æšªæžããšçžŠæžãã®äž¡æ¹ã§æžãããŸãã瞊æžãã¯å°èª¬ãæ°èãæŒ«ç»ãªã©ã§äžè¬çã§ãã
- éåœèª: äžåœèªãæ¥æ¬èªãšåæ§ã«ãéåœèªã暪æžããšçžŠæžãã®äž¡æ¹ããµããŒãããŠããŸãã
- ã¢ã³ãŽã«èª: äŒçµ±çãªã¢ã³ãŽã«æåã¯çžŠæžãã§æžãããŸãã
ãããã®èšèªåãã«ãã¶ã€ã³ããéã¯ãããã¹ããæ£ãããèªã¿ãããã¬ã³ããªã³ã°ãããããã«ãtext-orientationãwriting-modeããããã£ãšçµã¿åãããŠäœ¿çšããããšãäžå¯æ¬ ã§ããuprightãšmixedã®åããéžæããéã«ã¯ãæåçèæ¯ãšå¯Ÿè±¡èªè
ãèæ
®ããŠãã ããã
äŸãã°æ¥æ¬èªã§ã¯ãwriting-mode: vertical-rlãšå
±ã«text-orientation: uprightã䜿çšãããšããã¹ãŠã®æåãå転ããã«çžŠã«è¡šç€ºãããããã奜ãŸããã¹ã¿ã€ã«ã§ããããšãå€ãã§ããtext-orientation: mixedã䜿çšãããšã©ãã³æåãå転ããäžéšã®ãã¶ã€ã³ã«ã¯é©ããŠããŸãããããã§ãªãå ŽåããããŸãããŸããCSSã®directionããããã£ãwriting-modeãšçµã¿åããã£ãŠæç»æ¹åã«åœ±é¿ãäžããå¯èœæ§ãããããšã«ã泚æãå¿
èŠã§ãã
é«åºŠãªãã¯ããã¯ãšäœ¿çšäŸ
瞊åããã²ãŒã·ã§ã³ã¡ãã¥ãŒã®äœæ
text-orientationã®äžè¬çãªäœ¿çšäŸã®äžã€ã¯ã瞊åããã²ãŒã·ã§ã³ã¡ãã¥ãŒã®äœæã§ããwriting-modeãštext-orientationãçµã¿åãããããšã§ãåŸæ¥ã®æšªåã¡ãã¥ãŒãšã¯äžç·ãç»ããèŠèŠçã«å°è±¡çãªã¡ãã¥ãŒãç°¡åã«äœæã§ããŸãã
.vertical-nav {
width: 50px; /* Adjust as needed */
}
.vertical-nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
}
.vertical-nav li a {
display: block;
padding: 10px;
text-decoration: none;
color: #333;
writing-mode: vertical-rl;
text-orientation: upright;
transition: background-color 0.3s ease;
}
.vertical-nav li a:hover {
background-color: #f0f0f0;
}
ãã®äŸã§ã¯ããªã³ã¯ã瞊ã«è¡šç€ºãããã·ã³ãã«ãªçžŠåããã²ãŒã·ã§ã³ã¡ãã¥ãŒãäœæããŸããflex-direction: columnã¯ãªã¹ãé
ç®ã瞊ã«äžŠã¶ããšãä¿èšŒããtext-orientation: uprightã¯ããã¹ããæ£ç«ãããŸããå¹
ãããã£ã³ã°ãè²ã¯ãã¶ã€ã³å
šäœã«åãããŠèª¿æŽã§ããŸãã
èŠåºããã¿ã€ãã«ã§ã®çžŠæžãããã¹ã
text-orientationã¯ãèŠèŠçã«è峿·±ãèŠåºããã¿ã€ãã«ãäœæããããã«ã䜿çšã§ããŸããäŸãã°ããµã€ãããŒãããŒãžäžã®è£
食èŠçŽ ãšããŠçžŠæžãããã¹ãã䜿çšããããšãèããããŸãã
Vertical Title
.vertical-heading {
writing-mode: vertical-rl;
text-orientation: mixed; /* Or upright, depending on the desired effect */
margin-bottom: 20px;
}
ãã®äŸã§ã¯h1èŠçŽ ã瞊æžãã§ã¬ã³ããªã³ã°ããŸããmixedãšuprightã®ã©ã¡ããéžæãããã¯ãã©ãã³æåãå転ãããããã©ããã«ãã£ãŠæ±ºãŸããŸãã
ä»ã®CSSããããã£ãšã®çµã¿åãã
text-orientationããããã£ã¯ãä»ã®CSSããããã£ãšçµã¿åãããããšã§ãããã«æŽç·Žããã广ãçã¿åºãããšãã§ããŸããäŸãã°ãtransform: rotate()ã䜿çšããŠã瞊æžãã®ããã¹ããããã¯å
šäœãããè§åºŠã§å転ãããããšãã§ããŸãã
.rotated-vertical-text {
writing-mode: vertical-rl;
text-orientation: upright;
transform: rotate(-90deg); /* Rotate counter-clockwise */
}
ããã«ããã瞊æžãããã¹ããããã¯å šäœãåæèšåãã«90床å転ããŸããç°ãªãå転è§åºŠãä»ã®CSSããããã£ã詊ããŠããŠããŒã¯ã§èŠèŠçã«é åçãªãã¶ã€ã³ãå®çŸããŠãã ããã
ã¢ã¯ã»ã·ããªãã£ã«é¢ããèæ ®äºé
text-orientationã䜿çšããéã«ã¯ãã¢ã¯ã»ã·ããªãã£ãèæ
®ããããšãäžå¯æ¬ ã§ããéãããæã€ãŠãŒã¶ãŒãå«ããã¹ãŠã®ãŠãŒã¶ãŒã«ãšã£ãŠãããã¹ããèªã¿ãããçè§£ãããããŸãŸã§ããããšã確èªããŠãã ããã以äžã«äž»ãªèæ
®äºé
ãæããŸãïŒ
- ååãªã³ã³ãã©ã¹ã: ããã¹ããšèæ¯è²ã®éã«ååãªã³ã³ãã©ã¹ããããããšã確èªããŠãã ããã瞊æžãããã¹ãã¯æšªæžãããã¹ããããèªã¿ã«ããå Žåããããããããã¯ç¹ã«éèŠã§ããWebAIM Contrast Checkerã®ãããªããŒã«ã䜿çšããŠã³ã³ãã©ã¹ãæ¯ã確èªããŸãããã
- ãã©ã³ããµã€ãº: èªã¿ãããé©åãªãã©ã³ããµã€ãºã䜿çšããŠãã ãããç¹ã«çžŠæžãããã¹ãã§ã¯ãé床ã«å°ãããã©ã³ããµã€ãºã®äœ¿çšã¯é¿ããŠãã ãããå¿ èŠã«å¿ããŠãŠãŒã¶ãŒããã©ã³ããµã€ãºã調æŽã§ããããã«ããŸãããã
- è¡ã®é«ããšæåéé: å¯èªæ§ãåäžãããããã«ãè¡ã®é«ãïŒ
line-heightïŒãšæåééïŒletter-spacingïŒã調æŽããŠãã ããã瞊æžãããã¹ãã¯ã暪æžãããã¹ããšã¯ç°ãªãè¡ã®é«ããæåééã®å€ãå¿ èŠãšããå ŽåããããŸãã - ã¹ã¯ãªãŒã³ãªãŒããŒã®äºææ§: 瞊æžãããã¹ããæ£ããèªã¿äžããããããã¹ã¯ãªãŒã³ãªãŒããŒã§ãã¹ãããŠãã ãããã¹ã¯ãªãŒã³ãªãŒããŒãåžžã«çžŠæžãããã¹ããæ£ããåŠçãããšã¯éããªããããã³ã³ãã³ããã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããããšãéèŠã§ãã
- ããŒããŒãããã²ãŒã·ã§ã³: 瞊æžãããã¹ãã§ããŒããŒãããã²ãŒã·ã§ã³ãæ£ããæ©èœããããšã確èªããŠãã ããããŠãŒã¶ãŒã¯ããŒããŒãã䜿çšããŠåé¡ãªãã³ã³ãã³ããããã²ãŒãã§ããã¹ãã§ãã
- ã»ãã³ãã£ãã¯HTMLã®äœ¿çš: ã³ã³ãã³ããæ§é åããããã«é©åãªã»ãã³ãã£ãã¯HTMLèŠçŽ ãå©çšããŠãã ãããããã«ãããã¹ã¯ãªãŒã³ãªãŒããŒãã³ã³ãã³ããçè§£ãããããªããããè¯ããŠãŒã¶ãŒäœéšãæäŸã§ããŸããäŸãã°ãããã²ãŒã·ã§ã³ã¡ãã¥ãŒã«ã¯
<nav>ããäž»èŠãªã³ã³ãã³ãã»ã¯ã·ã§ã³ã«ã¯<article>ã䜿çšããŸãã
ã¯ãã¹ãã©ãŠã¶äºææ§
text-orientationããããã£ã¯ãææ°ã®ãã©ãŠã¶ã§è¯å¥œãªã¯ãã¹ãã©ãŠã¶äºææ§ãæã£ãŠããŸãããããããã¶ã€ã³ãæ£ãã衚瀺ãããããšã確èªããããã«ãåžžã«ç°ãªããã©ãŠã¶ã§ãã¹ãããããšããå§ãããŸããå€ããã©ãŠã¶ããµããŒãããå¿
èŠãããå Žåã¯ããã©ãŠã¶ãã¬ãã£ãã¯ã¹ã®äœ¿çšãæ€èšããŠãã ããïŒãã ããæè¿ã§ã¯éåžžã¯äžèŠã§ãïŒã
以äžã«ãã©ãŠã¶ãµããŒãã®æŠèŠã瀺ããŸãïŒ
- Chrome: å¯Ÿå¿æžã¿ã
- Firefox: å¯Ÿå¿æžã¿ã
- Safari: å¯Ÿå¿æžã¿ã
- Edge: å¯Ÿå¿æžã¿ã
- Internet Explorer: éšåçã«å¯Ÿå¿ãå®å šãªæ©èœã«ã¯ãã¬ãã£ãã¯ã¹ãããªãã£ã«ãå¿ èŠãªå ŽåããããŸããå€ãããŒãžã§ã³ã®IEã§ã¯çžŠæžãããã¹ãã®äœ¿çšãé¿ããããšãæ€èšããŠãã ããã
Can I Use (caniuse.com)ã®ãããªããŒã«ã䜿çšããŠãtext-orientationãä»ã®CSSããããã£ã«é¢ããææ°ã®ãã©ãŠã¶äºææ§æ
å ±ã確èªããŠãã ããã
text-orientationã䜿çšããéã®ãã¹ããã©ã¯ãã£ã¹
writing-modeãšã®äœµçš: ããã¹ããæ£ãã衚瀺ãããããã«ãåžžã«text-orientationãwriting-modeããããã£ãšçµã¿åãããŠäœ¿çšããŠãã ããã- èšèªãšæåãèæ
®ãã:
uprightãšmixedã®ã©ã¡ãããéžæããéã«ã¯ãèšèªãšæåçèæ¯ãèæ ®ããŠãã ããã - ã¢ã¯ã»ã·ããªãã£ã®ãã¹ã: ãã¹ãŠã®ãŠãŒã¶ãŒãå©çšã§ããããã«ããã¶ã€ã³ã®ã¢ã¯ã»ã·ããªãã£ãåžžã«ãã¹ãããŠãã ããã
- å¯èªæ§ã®ç¶æ: 瞊æžãã§è¡šç€ºãããå Žåã§ããããã¹ããèªã¿ããããçè§£ãããããŸãŸã§ããããšã確èªããŠãã ããã
- æ§ãããªäœ¿çš: ãã¶ã€ã³ã®èŠèŠçé åãé«ããããã«ã瞊æžãããã¹ãã¯æ§ããã«ãæŠç¥çã«äœ¿çšããŠãã ããã瞊æžãããã¹ããå€çšãããšãã³ã³ãã³ããèªã¿ã«ãããªããå šäœçãªãŠãŒã¶ãŒäœéšãæãªãå¯èœæ§ããããŸãã
ãŸãšã
text-orientationããããã£ã¯ããŠã§ããã¶ã€ã³ã«ãããŠããã¹ãã®åããå¶åŸ¡ããããã®åŒ·åãªããŒã«ã§ãããã®ããŸããŸãªå€ãçè§£ããwriting-modeããããã£ãšçµã¿åãããŠäœ¿çšããæ¹æ³ããã¹ã¿ãŒããããšã§ã倿§ãªèšèªããã¶ã€ã³çŸåŠã«å¯Ÿå¿ãããèŠèŠçã«é
åçã§åœéåããããŠã§ãäœéšãåµåºã§ããŸãããã¹ãŠã®ãŠãŒã¶ãŒãå©çšã§ãããã¶ã€ã³ã«ããããã«ãã¢ã¯ã»ã·ããªãã£ãšã¯ãã¹ãã©ãŠã¶äºææ§ãèæ
®ããããšãå¿ããªãã§ãã ããã
CSSã«ãã瞊æžãããã¹ãå¶åŸ¡ã®æè¡ããã¹ã¿ãŒããããšã§ãåµé çã§é åçãªãŠã§ããã¶ã€ã³ã®æ°ããªå¯èœæ§ãåãéããã°ããŒãã«ãªããžã¿ã«ç°å¢ã§ããªãã®ãŠã§ããµã€ããéç«ãããããšãã§ããã§ãããã